123

Android基础------SQLite数据库(一)

1.SQLite介绍

SQLite是一款非常流行的嵌入式数据库,它支持SQL操作,并且只用很少的内存。

Android在运行时集成了SQLite,所有每个Android应用程序都可以使用SQLLite数据库。

对熟悉SQL的开发人员来说,使用SQLite相当简单。

 

支持数据类型
null、integer、real、text、blob

 

2.使用SQLite

首次使用SQLite需要创建数据库和表,以及一些初始化数据。

 Android提供了抽象类SQLiteOpenHelper完成此类功能。

 

 

 

2.1  SQLiteOpenHelper中的方法

  onCreate(SQLiteDatabase db)  //第一次创建数据库时被调用,比如表只需要创建一次,那么这个执行语句就可以写在onCreate()里面

  onUpgrade(SQLiteDatabase db,int arg1,int arg2)  //系统发现现有数据库版本不同,即会被调用

 

新建一个类,继承SQLiteOpenHelper,同时实现onCreate()和onUpgrade()方法,以及一个构造方法


public
class MyOpenHelper extends SQLiteOpenHelper { /** * * @param context 上下文 * @param name 数据库文件名称 * @param factory 如果为null则使用默认方式 * @param version 版本号,后期可以修改,但只能往上升,不能往下降 */ public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, 1); } /** * 当数据库文件不存在的时候,创建数据库文件,并且是第一次使用 * @param sqLiteDatabase */ @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { Log.i("onCreate","调用onCreate"); } /** * 只有版本更新时调用 * @param sqLiteDatabase * @param i 旧版本号 * @param i1 当前版本号 */ @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { Log.i("onUpgrade","调用onUpgrade"); } }

 

 

(在android系统中,每个应用程序的SQLite数据库都被保存在各自的/data/data/<包名>/databases目录下,默认情况下,都是私有的,仅允许当前应用程序访问。)

 

activity_main.xml中加个按钮:

 <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="创建数据库"
        android:onClick="test_01"/>

 

 

MainActivity:

 public void test_01(View view){
        //实例化
        MyOpenHelper myOpenHelper = new MyOpenHelper(this,"mybase.db",null,1);
        //获取一个SQLiteDatabase对象
        SQLiteDatabase sqLiteDatabase = myOpenHelper.getReadableDatabase();
        //sql语句,暂时忽略不写
        String sql = "  ";
        //执行sql语句
        sqLiteDatabase.execSQL(sql);
        //关闭
        sqLiteDatabase.close();
        myOpenHelper.close();
    }

 

 

 

2.2  SQLiteDatabase对象说明

2.2 1  通过此对象就可以调用SQLiteDatabase的方法来进行数据库操作,例如创建表、插入数据、删除数据等操作。

2.2.2  获取SQLiteDatabase对象的方法

getWritableDatabase()   //以读写的方式打开数据库,一旦磁盘空间满了,数据库就只能读不能写,倘若再次打开数据就会报错

 

getWritableDatabase()  //先以读写的方式打开数据库,如果磁盘满了就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。

 

(SQLiteDatabase既代表了与数据库的连接,又能执行sql语句)

 

posted on 2017-12-12 20:26  J依情  阅读(850)  评论(0编辑  收藏  举报

导航